home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 11.0 KB | 333 lines | [TEXT/MPS ] |
- ;
- ; File: PCIPlugin.a
- ;
- ; Contains: This file contains all interface related structures and prototypes for pci expert to plugin
- ;
- ; Version: Technology: Copland
- ; Release: Universal Interfaces 3.0d3 on Copland DR1
- ;
- ; Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
- ;
- ; Bugs?: If you find a problem with this file, send the file and version
- ; information (from above) and the problem description to:
- ;
- ; Internet: apple.bugs@applelink.apple.com
- ; AppleLink: APPLE.BUGS
- ;
- ;
- IF &TYPE('__PCIPLUGIN__') = 'UNDEFINED' THEN
- __PCIPLUGIN__ SET 1
-
- IF &TYPE('__PCICOMMONPLUGIN__') = 'UNDEFINED' THEN
- include 'PCICommonPlugin.a'
- ENDIF
- IF FOR_SYSTEM8_PREEMPTIVE THEN
- ; subordinate pci device tree 'reg' property structure definition
- PCIRegProperty RECORD 0
- physicalHigh ds.l 1 ; offset: $0 (0)
- physicalMiddle ds.l 1 ; offset: $4 (4)
- physicalLow ds.l 1 ; offset: $8 (8)
- propAddress ds.l 1 ; offset: $C (12)
- propLength ds.l 1 ; offset: $10 (16)
- sizeof EQU * ; size: $14 (20)
- ENDR
- ; typedef struct PCIRegProperty * PCIRegPropertyPtr
-
- ; pci device tree 'bus-range' property structure definition
- PCIBusRangeProperty RECORD 0
- lowBus ds.l 1 ; offset: $0 (0)
- highBus ds.l 1 ; offset: $4 (4)
- sizeof EQU * ; size: $8 (8)
- ENDR
- ; typedef struct PCIBusRangeProperty * PCIBusRangePropertyPtr
-
- ; subordinate pci device description table entry header structure definition
- ; typedef LogicalAddress ConfigAddress
-
- ; typedef LogicalAddress IOAddress
-
- PCIDeviceTableEntryHeader RECORD 0
- entry ds RegEntryRef ; offset: $0 (0)
- name ds.b 32 ; offset: $10 (16)
- pciDomain ds.l 1 ; offset: $30 (48)
- pciBusNumber ds.l 1 ; offset: $34 (52)
- pciSecondBusNumber ds.l 1 ; offset: $38 (56)
- accessType ds.l 1 ; offset: $3C (60)
- regProperty ds.l 1 ; offset: $40 (64)
- regPropertyCount ds.l 1 ; offset: $44 (68)
- ioBase ds.l 1 ; offset: $48 (72)
- rangeBase ds.l 1 ; offset: $4C (76)
- sizeof EQU * ; size: $50 (80)
- ENDR
- ; typedef struct PCIDeviceTableEntryHeader * PCIDeviceTableEntryHeaderPtr
-
- ; subordinate pci device description table entry structure definition
- PCIDeviceTableEntry RECORD 0
- nextDeviceEntry ds.l 1 ; offset: $0 (0)
- header ds PCIDeviceTableEntryHeader ; offset: $4 (4)
- BridgePlugin ds.l 1 ; offset: $54 (84)
- pluginSpecificStuff ds.l 16 ; offset: $58 (88)
- sizeof EQU * ; size: $98 (152)
- ENDR
- ; typedef struct PCIDeviceTableEntry * PCIDeviceTableEntryPtr
-
- ; type defs for plugin interfaces
- ; pci domain descriptor definition
- PCIControlDescriptor RECORD 0
- InterfaceHeader ds PCIPluginHeader ; offset: $0 (0)
- PCIDeviceDescriptor ds PCIDeviceTableEntry ; offset: $14 (20)
- TheDomainDriverDescription ds.l 1 ; offset: $AC (172)
- InitializeFunc ds.l 1 ; offset: $B0 (176)
- ConfigReadByteFunc ds.l 1 ; offset: $B4 (180)
- ConfigReadWordFunc ds.l 1 ; offset: $B8 (184)
- ConfigReadLongFunc ds.l 1 ; offset: $BC (188)
- ConfigWriteByteFunc ds.l 1 ; offset: $C0 (192)
- ConfigWriteWordFunc ds.l 1 ; offset: $C4 (196)
- ConfigWriteLongFunc ds.l 1 ; offset: $C8 (200)
- IOReadByteFunc ds.l 1 ; offset: $CC (204)
- IOReadWordFunc ds.l 1 ; offset: $D0 (208)
- IOReadLongFunc ds.l 1 ; offset: $D4 (212)
- IOWriteByteFunc ds.l 1 ; offset: $D8 (216)
- IOWriteWordFunc ds.l 1 ; offset: $DC (220)
- IOWriteLongFunc ds.l 1 ; offset: $E0 (224)
- IntAckReadByteFunc ds.l 1 ; offset: $E4 (228)
- IntAckReadWordFunc ds.l 1 ; offset: $E8 (232)
- IntAckReadLongFunc ds.l 1 ; offset: $EC (236)
- SpecialCycleWriteLongFunc ds.l 1 ; offset: $F0 (240)
- InitDeviceEntryFunc ds.l 1 ; offset: $F4 (244)
- GetIOBaseFunc ds.l 1 ; offset: $F8 (248)
- FinalizeFunc ds.l 1 ; offset: $FC (252)
- sizeof EQU * ; size: $100 (256)
- ENDR
- ; typedef struct PCIControlDescriptor * PCIControlDescriptorPtr
-
- ; Prototypes for the PIM
- ;
- ; extern OSStatus PCIPluginInitialize(void)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginInitialize
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginConfigReadByte(ConfigAddress configAddr, UInt8 *valuePtr, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginConfigReadByte
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginConfigReadWord(ConfigAddress configAddr, UInt16 *valuePtr, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginConfigReadWord
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginConfigReadLong(ConfigAddress configAddr, UInt32 *valuePtr, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginConfigReadLong
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginConfigWriteByte(ConfigAddress configAddr, UInt8 value, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginConfigWriteByte
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginConfigWriteWord(ConfigAddress configAddr, UInt16 value, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginConfigWriteWord
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginConfigWriteLong(ConfigAddress configAddr, UInt32 value, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginConfigWriteLong
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginIOReadByte(IOAddress ioAddr, UInt8 *valuePtr, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginIOReadByte
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginIOReadWord(IOAddress ioAddr, UInt16 *valuePtr, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginIOReadWord
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginIOReadLong(IOAddress ioAddr, UInt32 *valuePtr, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginIOReadLong
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginIOWriteByte(IOAddress ioAddr, UInt8 value, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginIOWriteByte
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginIOWriteWord(IOAddress ioAddr, UInt16 value, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginIOWriteWord
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginIOWriteLong(IOAddress ioAddr, UInt32 value, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginIOWriteLong
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginIntAckReadByte(UInt8 *valuePtr, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginIntAckReadByte
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginIntAckReadWord(UInt16 *valuePtr, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginIntAckReadWord
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginIntAckReadLong(UInt32 *valuePtr, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginIntAckReadLong
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginSpecialCycleWriteLong(UInt32 value, PCIDeviceTableEntryPtr pciDeviceEntry)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginSpecialCycleWriteLong
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginInitDeviceEntry(PCIDeviceTableEntryPtr deviceDescriptor)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginInitDeviceEntry
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginGetIOBase(PCIDeviceTableEntryPtr deviceDescriptor, IOAddress *ioBase)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginGetIOBase
- ENDIF
-
- ;
- ; extern OSStatus PCIPluginFinalize(void)
- ;
- IF GENERATINGCFM THEN
- IMPORT_CFM_FUNCTION PCIPluginFinalize
- ENDIF
-
- ; general purpose pci masks
-
- kPCIconfigAddrReservedValue EQU $00000000
- kPCIconfigAddrReservedMask EQU $FF000000
- kPCIconfigAddrBusNumberMask EQU $00FF0000
- kPCIconfigAddrDeviceNumberMask EQU $0000F800
- kPCIconfigAddrFunctionNumberMask EQU $00000700
- kPCIconfigAddrRegisterNumberMask EQU $000000FC
- kPCIconfigAddrAccessTypeMask EQU $00000001
- kPCIregisterByteMask EQU $00000003
- kPCIregisterNotByteMask EQU $FFFFFFFC
- kPCIregisterWordMask EQU $00000002
- ; pci encoded-int structure constants definition
-
- kPCIPhysicalHighRelocatableMask EQU $80000000
- kPCIPhysicalHighRelocatable EQU $80000000
- kPCIPhysicalHighPrefetchableMask EQU $40000000
- kPCIPhysicalHighPrefetchable EQU $40000000
- kPCIPhysicalHighAliasedMask EQU $20000000
- kPCIPhysicalHighAliased EQU $20000000
- kPCIPhysicalHighSpaceCodeMask EQU $03000000
- kPCIPhysicalHighSpaceCodeConfig EQU $00000000
- kPCIPhysicalHighSpaceCodeIO EQU $01000000
- kPCIPhysicalHighSpaceCodeMemory EQU $02000000
- kPCIPhysicalHighSpaceCode64Bit EQU $03000000
- kPCIPhysicalHighBusMask EQU $00FF0000
- kPCIPhysicalHighDeviceMask EQU $0000F800
- kPCIPhysicalHighDevice0 EQU $00000000
- kPCIPhysicalHighDevice1 EQU $00000800
- kPCIPhysicalHighDevice2 EQU $00001000
- kPCIPhysicalHighDevice3 EQU $00001800
- kPCIPhysicalHighDevice4 EQU $00002000
- kPCIPhysicalHighDevice5 EQU $00002800
- kPCIPhysicalHighDevice6 EQU $00003000
- kPCIPhysicalHighDevice7 EQU $00003800
- kPCIPhysicalHighDevice8 EQU $00004000
- kPCIPhysicalHighDevice9 EQU $00004800
- kPCIPhysicalHighDevice10 EQU $00005000
- kPCIPhysicalHighDevice11 EQU $00005800
- kPCIPhysicalHighDevice12 EQU $00006000
- kPCIPhysicalHighDevice13 EQU $00006800
- kPCIPhysicalHighDevice14 EQU $00007000
- kPCIPhysicalHighDevice15 EQU $00007800
- kPCIPhysicalHighDevice16 EQU $00008000
- kPCIPhysicalHighDevice17 EQU $00008800
- kPCIPhysicalHighDevice18 EQU $00009000
- kPCIPhysicalHighDevice19 EQU $00009800
- kPCIPhysicalHighDevice20 EQU $0000A000
- kPCIPhysicalHighDevice21 EQU $0000A800
- kPCIPhysicalHighDevice22 EQU $0000B000
- kPCIPhysicalHighDevice23 EQU $0000B800
- kPCIPhysicalHighDevice24 EQU $0000C000
- kPCIPhysicalHighDevice25 EQU $0000C800
- kPCIPhysicalHighDevice26 EQU $0000D000
- kPCIPhysicalHighDevice27 EQU $0000D800
- kPCIPhysicalHighDevice28 EQU $0000E000
- kPCIPhysicalHighDevice29 EQU $0000E800
- kPCIPhysicalHighDevice30 EQU $0000F000
- kPCIPhysicalHighDevice31 EQU $0000F800
- kPCIPhysicalHighFunctionMask EQU $00000700
- kPCIPhysicalHighFunction0 EQU $00000000
- kPCIPhysicalHighFunction1 EQU $00000100
- kPCIPhysicalHighFunction2 EQU $00000200
- kPCIPhysicalHighFunction3 EQU $00000300
- kPCIPhysicalHighFunction4 EQU $00000400
- kPCIPhysicalHighFunction5 EQU $00000500
- kPCIPhysicalHighFunction6 EQU $00000600
- kPCIPhysicalHighFunction7 EQU $00000700
- kPCIPhysicalHighRegisterMask EQU $000000FF
- kPCIPhysicalHighRegisterVendorID EQU $00000000
- kPCIPhysicalHighRegisterDeviceID EQU $00000002
- kPCIPhysicalHighRegisterCommand EQU $00000004
- kPCIPhysicalHighRegisterRevisionID EQU $00000008
- kPCIPhysicalHighRegisterCacheLineSIze EQU $0000000C
- kPCIPhysicalHighRegisterHeaderType EQU $0000000E
- kPCIPhysicalHighRegisterBaseAddress EQU $00000010
- kPCIPhysicalHighRegisterBridgeBusInfo EQU $00000018
- kPCIPhysicalHighRegisterCardbusCIS EQU $00000028
- kPCIPhysicalHighRegisterSubsystemVendorID EQU $0000002C
- kPCIPhysicalHighRegisterExpansionROMBase EQU $00000030
- kPCIPhysicalHighRegisterInterruptLine EQU $0000003C
- ; pci cycle access type for forwarding
-
- kPCIaccessType0 EQU 0
- kPCIaccessType1 EQU 1
- ENDIF
- ENDIF ; __PCIPLUGIN__
-
-